This invention relates to ensuring the compliance, integrity and authenticity of microprocessor-based gaming devices utilized in regulated gaming jurisdictions. These devices are commonly referred to as slot machines or video poker machines; however, more recent implementations have combined both aspects and offer a variety of games on a single machine referred to as a multi-game machine. A commonly configured multi-game machine would include a plurality of games such as: keno, poker, slots, blackjack and others. These games can be played separately or be combined together to form new games, games within games, thus pushing the limits of gaming software and hardware capabilities. As the complexity of these gaming devices increases, the difficulty of ensuring regulatory compliance increases.
Typical gaming machines of this type utilize a combination of mechanical devices, electronics, microprocessors and complex software to generate the gaming experience. Some of the common hardware components include a cabinet, handle, jackpot tower, coin acceptor, bill acceptor, credit meters, back-lit glass, reels, monitors, game doors, buttons, payout hoppers, lights and speakers. The electronics include many of the following components: microprocessor, (also referred to as a central processing unit (“CPU”)), read only memory (ROM), random access memory (RAM), high speed data bus, peripheral logic chips for serial and parallel ports and driver circuitry for lamps, speakers, video and other devices. Typical software components include: power-up initialization, device drivers, game recovery, state machines (to monitor whether the game is in a state of active play, “sleeping” between active play or off), random number generator, payout routine, credit management. graphics engine, sound, game engine, game data, security, accounting and reporting functions.
In jurisdictions where gaming is legal, use of such gaming devices is regulated by law. This invention is designed to aid in complying with two kinds of gaming regulations: those requiring automated verification of the device's integrity, and those requiring a method of determining the authenticity of the device.
As will be described below, verification and authentication are separate processes. Verification of the gaming software is usually performed before and during game play. Verification is done initially to make certain that the program code or other data stored in the gaming device is intact and functioning properly by methods known to those skilled in the art. In the case of verification, the gaming device's software is usually required to be check-summed or cyclic redundancy checked (CRC). During program execution (i.e., the course of game play) the software images are periodically re-checked in order to ensure that the storage media in which the program code/data is stored has not become corrupted. This periodic verification is important because media corruption has been known to generate erroneous jackpots.
Occasionally, the software is authenticated, which is typically a process carried out by a third party (other than the manufacturer or the operator/casino) representing the gaming enforcement agency that has jurisdiction over the device. Its purpose is to ensure that the software controlling the game has not been tampered with, and software authentication is usually required after a large jackpot has been obtained by a player. Authentication also verifies that the gaming software was previously examined and approved by the gaming agency in whose jurisdiction the jackpot occurred.
In addition, the casino likes to verify that the software running the game is legitimate particularly if the machine is not earning the expected amount of revenue or in response to player complaints about the behavior of a particular game.
In prior art devices, authentication is usually accomplished by one of two methods. Both methods require the opening of the game, the removal of CPU and the removal of software, typically stored in EPROMS, (Electronically Programmable Read Only Memory) from the CPU. Then, in the first method, the removed EPROMS are compared with a custodial (or master) set of EPROMS which have been kept in a secure location. If the comparison indicates that they are the same, the software is considered to be authentic. The second method involves plugging each EPROM into an electronic authentication device which generates an authentication identification (id) for the image resident in the EPROM. The resulting authentication ids are compared to previously recorded ids for those EPROMS. If they are identical, the software is labeled authentic.
Existing authentication methods are well-suited to prior art devices which use ROM type storage; and which typically are stand-alone gaming machines. However, with the advent of new storage technologies, increased storage requirements of modern operating systems, and multi-game multimedia gambling devices involving a plurality of gaming machines in communication with each other, the prior art methods are no longer sufficient.
And though Silicon Gaming has invented a method for “authenticating” software stored in other media. it ignores the existing authentication paradigm presently accepted in gaming. Thus, there is a need for a means of verifying and authenticating software stored in modern media that is compatible with existing gaming regulations and practices. It is also believed that such methods should take into account the practice of relating software and modular functionality to EPROMS like prior art systems. The industry is comfortable with having a set of EPROMS for “System” software and a set for each model (comprising unique pay schedule, symbols, and/or play rules), or a set for each game in a multi-game environment. It is further thought that remote authentication is desirable to said agencies. Lastly, it is thought that a method of authentication that does not require the removal of gaming software from the machine is desirable to the operator.